package org.byqh.dqeai.entity;

import com.easy.query.core.annotation.Column;
import com.easy.query.core.annotation.EntityFileProxy;
import com.easy.query.core.annotation.Table;
import com.easy.query.core.proxy.ProxyEntityAvailable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.byqh.dqeai.entity.proxy.SysAppModuleProxy;

import java.time.LocalDateTime;

/**
 * 实体类。
 *
 * @author easy-query-plugin automatic generation
 * @since 1.0
 */
@Data
@Schema(name = "SysAppModule", description = "$table.comment")
@Table(value = "SYS_APP_MODULE")
@EntityFileProxy
public class SysAppModule implements ProxyEntityAvailable<SysAppModule, SysAppModuleProxy> {

    @Column(primaryKey = true, value = "APP_ID")
    private String appId;

    @Column(primaryKey = true, value = "MODULE_ID")
    private String moduleId;

    @Column(value = "MODULE_NAME")
    private String moduleName;

    @Column(value = "MODULE_ALIAS_NAME")
    private String moduleAliasName;

    @Column(value = "PARENT_MODULE_ID")
    private String parentModuleId;

    /**
     * 适用于Ribbon界面功能区的分组
     */
    @Schema(description = "适用于Ribbon界面功能区的分组")
    @Column(value = "CATEGORY")
    private String category;

    /**
     * 模块图标路径,相对路径
     */
    @Schema(description = "模块图标路径,相对路径")
    @Column(value = "MODULE_ICON")
    private String moduleIcon;

    /**
     * 0为不自动运行;1为自动运行
     */
    @Schema(description = "0为不自动运行;1为自动运行")
    @Column(value = "AUTORUN")
    private String autorun;

    /**
     * 0为文件夹;1:为CS模块;2为BS模块
     */
    @Schema(description = "0为文件夹;1:为CS模块;2为BS模块")
    @Column(value = "MODULE_TYPE")
    private String moduleType;

    /**
     * 0 内嵌TAB页,1模态对话框,2独立窗体,3独立进程,4方法调用
     */
    @Schema(description = "0 内嵌TAB页,1模态对话框,2独立窗体,3独立进程,4方法调用")
    @Column(value = "MODULE_RUN_TYPE")
    private String moduleRunType;

    /**
     * 0为不显示;1为显示,默认为1
     */
    @Schema(description = "0为不显示;1为显示,默认为1")
    @Column(value = "MODULE_VISIBLE")
    private String moduleVisible;

    @Column(value = "CS_FILEPATH")
    private String csFilepath;

    @Column(value = "CS_NAMESPACE")
    private String csNamespace;

    @Column(value = "CS_METHOD")
    private String csMethod;

    /**
     * 0为平台标准参数;1为自定义参数
     */
    @Schema(description = "0为平台标准参数;1为自定义参数")
    @Column(value = "PARM_TYPE")
    private String parmType;

    @Column(value = "BS_URL")
    private String bsUrl;

    /**
     * 0为IE内核;1为谷歌内核
     */
    @Schema(description = "0为IE内核;1为谷歌内核")
    @Column(value = "BS_BROWSER_KENEL")
    private String bsBrowserKenel;

    /**
     * 0为外部认证;1为内部认证
     */
    @Schema(description = "0为外部认证;1为内部认证")
    @Column(value = "BS_AUTOLOGIN")
    private String bsAutologin;

    @Column(value = "PARM_INFO")
    private String parmInfo;

    @Column(value = "MODULE_SEQ")
    private Short moduleSeq;

    @Column(value = "CREATE_DATE")
    private LocalDateTime createDate;

    @Column(value = "UPDATE_DATE")
    private LocalDateTime updateDate;

    @Column(value = "REMARK")
    private String remark;

    /**
     * CS模块类名称
     */
    @Schema(description = "CS模块类名称")
    @Column(value = "CS_CLASS")
    private String csClass;

    @Column(value = "DATABASE_ID")
    private String databaseId;

    @Column(value = "MULTI_INST")
    private String multiInst;

    @Column(value = "ALWAYS_OPEN")
    private String alwaysOpen;

    @Column(value = "AUTORUN_SEQ")
    private Short autorunSeq;

    @Column(value = "NAV_VISIBLE")
    private Boolean navVisible;

    /**
     * 默认为0表示普通模块;1表示复合模块.适用于文件夹
     */
    @Schema(description = "默认为0表示普通模块;1表示复合模块.适用于文件夹")
    @Column(value = "HYBRID_ENABLE")
    private Boolean hybridEnable;

    /**
     * 复合模块样式
     */
    @Schema(description = "复合模块样式")
    @Column(value = "HYBRID_STYLE")
    private String hybridStyle;
}
